import { IPSDataEntity } from '../dataentity/ipsdata-entity';
import { IPSSysTestDataItem } from './ipssys-test-data-item';
import { IPSModelObject } from '../ipsmodel-object';

/**
 *
 * 子接口类型识别属性[]
 * @export
 * @interface IPSSysTestData
 */
export interface IPSSysTestData extends IPSModelObject {
  /**
   * 代码标识
   * @type {string}
   */
  codeName: string;

  /**
   * 测试数据
   * @type {string}
   */
  data: string;

  /**
   * 实例数量
   * @type {number}
   */
  instCount: number;

  /**
   * 相关实体
   *
   * @type {IPSDataEntity}
   */
  getPSDataEntity(): IPSDataEntity | null;

  /**
   * 相关实体
   *
   * @type {IPSDataEntity}
   */
  get psDataEntity(): IPSDataEntity | null;

  /**
   * 相关实体（必须存在）
   *
   * @type {IPSDataEntity}
   */
  getPSDataEntityMust(): IPSDataEntity;

  /**
   * 测试数据项集合
   *
   * @type {IPSSysTestDataItem[]}
   */
  getPSSysTestDataItems(): IPSSysTestDataItem[] | null;

  /**
   * 测试数据项集合
   *
   * @type {IPSSysTestDataItem[]}
   */
  get psSysTestDataItems(): IPSSysTestDataItem[] | null;

  findPSSysTestDataItem(objKey: any): IPSSysTestDataItem | null;

  /**
   * 脚本代码
   * @type {string}
   */
  scriptCode: string;

  /**
   * 测试数据类型
   * @description 值模式 [测试数据类型] {DATA：数据、 CUSTOMCODE：自定义代码、 USER：用户自定义、 USER2：用户自定义2、 USER3：用户自定义3、 USER4：用户自定义4 }
   * @type {( string | 'DATA' | 'CUSTOMCODE' | 'USER' | 'USER2' | 'USER3' | 'USER4')}
   */
  testDataType: string | 'DATA' | 'CUSTOMCODE' | 'USER' | 'USER2' | 'USER3' | 'USER4';

  /**
   * 基本模式
   * @type {boolean}
   */
  baseMode: boolean;
}
